package com.elitel.frame.base.service;

import com.elitel.frame.main.entity.SysDocument;
import com.elitel.frame.main.entity.SysPrjservice;
import com.elitel.frame.main.entity.ext.SysDocumentExt;

import java.util.List;

/**
 * 项目非结构化文档服务接口
 * created by guoyanfei on 2018/4/18
 */
public interface SysDocumentService {
    /**
     * 验证ftp服务器是否联通
     * created on 2018/04/18
     * @param ftpHost FTP服务器地址
     * @param ftpPort FTP服务器端口号
     * @param ftpUser FTP服务器登录用户
     * @param ftpPass FTP服务器登录密码
     * @return
     */
    Boolean ftpConnection(String ftpHost,int ftpPort,String ftpUser,String ftpPass);

    /**
     * 新增项目非结构化文档信息
     * created on 2018/04/18
     * @param sysDocumentExt 实体
     * @return 新增条数
     * @author guoyanfei
     */
    Integer insertSysDocument(SysDocumentExt sysDocumentExt);

    /**
     * 修改项目非结构化文档信息
     * created on 2018/04/18
     * @param sysDocument 实体
     * @return 修改条数
     * @author guoyanfei
     */
    Integer updateSysDocument(SysDocument sysDocument);

    /**
     * 根据主键ID删除非结构化文档配置信息
     * created on 2018/04/19
     * @param guid 主键ID
     * @param procode 项目编码
     * @return 删除结果
     * @author guoyanfei
     */
    Integer deleteSysDocument(String guid,String procode);


    /**
     * 查询非结构化文档配置信息<br/>
     * 如服务ID为空查询所有的信息，否则查询该项目编码对应的配置信息
     * created on 2018/04/19
     * @param serviceId 项目编码
     * @return SysDocument实体 list集合
     * @author guoyanfei
     */
    List<SysDocument> getSysDocumentListByserviceId(String serviceId);

    /**
     * 查询文档检索服务ID是否存在
     * created on 2018/05/23
     * @param serviceId 服务ID
     * @return 查询条数
     * @author guoyanfei
     */
    Integer isExitserviceId(String serviceId);

    /**
     * 通过文档服务ID查询文档检索服务配置信息
     * created on 2018/05/23
     * @param serviceId
     * @return SysDocument实体
     * @author guoyanfei
     */
    SysDocument selectInfoByserviceId(String serviceId);

    /**
     * 删除服务中间表(SYS_PRJSERVICE),删除文档检索配置信息表(SYS_DOCUMENT)<br/>
     * 删除elasticsearch索引库
     * created on 2018/05/23
     * @param sysPrjservice 实体
     * @return 删除结果
     * @author guoyanfei
     */
    Integer deleteDocInfoByprjservices(SysPrjservice sysPrjservice);

    /**
     * 通过服务ID查询服务与项目关联信息
     * created on 2018/05/24
     * @param serviceId 服务ID
     * @return SysPrjservice 实体
     * @author guoyanfei
     */
    SysPrjservice getSysPrjserviceByid(String serviceId);

}
